mongo_dart WriteConcern
WriteConcern
是 mongo_dart 的一个类,用于控制 MongoDB 写操作的确认方式。它包含了一些参数,这些参数可以用来控制写操作的确认级别、超时时间、是否在确认前进行 fsync() 操作、是否在确认前进行日志记录等。
w 属性
w
属性用于表示写确认级别。它可以是整数或字符串。具体的值和含义如下:
-1
:禁用所有写操作的确认,并抑制所有错误,包括网络和套接字错误。0
:禁用写操作的基本确认,但将套接字异常和网络错误的信息返回给应用程序。1
:对单机 mongod 或复制集中的主节点的写操作提供确认。- 大于
1
的数字:保证写操作已成功传播到指定数量的复制集成员,包括主节点。 "majority"
:确认写操作已传播到配置的复制集的大多数成员。- 标签集:对必须确认写操作的复制集成员进行细粒度控制。
这个属性在 MongoDB 的写操作中非常重要,因为它可以帮助你控制数据的一致性和可用性。例如,如果你设置 w
为 "majority"
,那么只有当大多数复制集成员都确认了写操作,你的写操作才会返回成功。这可以确保在发生网络分区或节点故障时,你的数据不会丢失。
final dynamic w;
wtimeout
属性
wtimeout
是一个可选的整数,表示写确认的超时时间(以毫秒为单位)。如果等于0,表示无限超时。
final int? wtimeout;
fsync
属性
fsync
是一个布尔值,表示是否在确认写操作前进行 fsync() 操作。如果为 true,表示在返回前等待 mongod 实例将数据写入磁盘。
final bool fsync;
j
属性
j
是一个布尔值,表示是否在确认写操作前进行日志记录。如果为 true,表示在返回前等待 mongod 实例将数据写入磁盘日志。
final bool j;
provenance
属性
provenance
属性用于表示写确认的来源。它是一个可选的字符串,可能的值和含义如下:
clientSupplied
:写确认是在应用程序中指定的。customDefault
:写确认来自自定义的默认值。参见setDefaultRWConcern
方法。getLastErrorDefaults
:写确认来自复制集的settings.getLastErrorDefaults
字段。implicitDefault
:在所有其他写确认规范都不存在的情况下,写确认来自服务器。
需要注意的是,这个字段只有在数据库返回 writeConcernError
时才会被设置,不应该发送给服务器。这意味着,你可以使用这个字段来确定写确认的来源,但你不应该尝试修改它或将它包含在发送给服务器的命令中。
final String? provenance;
本文作者:Maeiee
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!